Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
Error: [ngModel:datefmt] Se esperaba que `2015-05-29T19:06:16.693209Z` fuera una fecha - Angular

Estoy trabajando en una aplicación angular con Django con rest-framework .

La aplicación recibe su información con json del servidor. Una de las claves es created_time ... El valor de este campo tiene el formato según iso-8601 , por ejemplo, 2015-05-29T19:06:16.693209Z .

En el cliente tengo un campo:

 <input type="time" ng-model="created_time">

Pero cuando llegan los datos me sale este error:

 Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date http://errors.angularjs.org/1.3.13/ngModel/datefmt?p0=2015-05-29T19%3A06%3A16.693209Z at REGEX_STRING_REGEXP (angular.js:63) at Array.<anonymous> (angular.js:19807) at Object.ngModelWatch (angular.js:23289) at Scope.$get.Scope.$digest (angular.js:14235) at Scope.$get.Scope.$apply (angular.js:14506) at done (angular.js:9659) at completeRequest (angular.js:9849) at XMLHttpRequest.requestLoaded (angular.js:9790)

Ya probé todo :( el formato es exactamente como las instrucciones en los documentos de angular...

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esto debe estar sucediendo con angular 1.3+. 1.3+ en adelante ng-model para la entrada de fecha/hora debe ser un objeto de fecha válido, ya no se permite la representación de cadena de fecha. Debe convertir la cadena en objeto de fecha ( $scope.created_time = new Date(dateString) ) y vincularla al modelo ng. Si sigue el enlace de error , tiene una descripción clara sobre el error y cómo resolverlo.

Todas las entradas relacionadas con la fecha requieren que el modelo sea un objeto de fecha. Si el modelo es otra cosa, se lanzará este error. Angular no establece errores de validación en este caso, ya que esos errores se muestran al usuario, pero el estado erróneo fue causado por una lógica de aplicación incorrecta y no por el usuario.

over 4 years ago · Santiago Trujillo Denunciar

0

Si obtiene sus datos de un Servicio REST, simplemente puede convertir sus campos a Fecha.

 $http.get(url).success(function(data){ $scope.data = data; // get row data $scope.data.mydatefield = new Date($scope.data.mydatefield); // convert filed to date });
over 4 years ago · Santiago Trujillo Denunciar

0

Cree una directiva simple que convierta el valor del modelo:

HTML:

 <input date-input type="time" ng-model="created_time">

Directiva:

 app.directive('dateInput', function(){ return { restrict : 'A', scope : { ngModel : '=' }, link: function (scope) { if (scope.ngModel) scope.ngModel = new Date(scope.ngModel); } } });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda